//
// Created by 李康 on 15/12/10.
//

#ifndef DNS_MINING_DATAPOINT_H
#define DNS_MINING_DATAPOINT_H
#include <vector>
#include <string>
using namespace std;

const int DIME_NUM=168;        //数据维度为2，全局常量

//数据点类型
class DataPoint {
private:
    unsigned long dpID;                //数据点ID
    string domain;                  //域名
    double dimension[DIME_NUM];        //维度数据
    long clusterId;                    //所属聚类ID
    bool isKey;                        //是否核心对象
    bool visited;                    //是否已访问
    vector<unsigned long> arrivalPoints;    //领域数据点id列表
public:
    DataPoint();
    DataPoint(unsigned long dpID,double* dimension , bool isKey);

    unsigned long GetDpId();
    void SetDpId(unsigned long dpID);
    double* GetDimension();
    void SetDimension(double* dimension);
    bool IsKey();
    void SetKey(bool isKey);
    bool isVisited();
    void SetVisited(bool visited);
    long GetClusterId();
    void SetClusterId(long classId);
    void SetDomain(string domain);
    string GetDomain();
    vector<unsigned long>& GetArrivalPoints();
};
#endif //DNS_MINING_DATAPOINT_H
